#ifndef NUMPADPANEL_H
#define NUMPADPANEL_H

#include <QDialog>
#include <QTabWidget>
#include <QGridLayout>
#include <QPushButton>
#include <QSettings>
#include <QVector>

class NumpadPanel : public QDialog
{	
	Q_OBJECT

public:
	explicit NumpadPanel(QWidget *parent = nullptr);
    ~NumpadPanel() override = default;

	// func
	void showPanel();

signals:
	void symbolSent(const QString& symbol);

private slots:
	void onSymbolButtonClicked(const QString& symbol);		// @brief 处理符号按钮点击（发送符号到焦点控件）
	void loadRecentSymbols();								// @brief 加载最近使用的符号（从 QSettings 读取）
	void addToRecentSymbols(const QString& symbol);			// @brief 将符号添加到最近使用列表（最多10条） 

private:
	void initUI();
	void initSymbolTabs(QTabWidget* tabWidget);
	void addSymbolButtons(QGridLayout* layout, const QStringList& symbols);
	void sendSymbolToFocusWidget(const QString& symbol);

	QSettings m_settings;                  // 存储最近使用符号（组：Numpad/Key：RecentSymbols）
    QVector<QString> m_recentSymbols;      // 最近使用符号列表（最多10条）
    QWidget* m_recentWidget;               // 最近使用符号容器
    QHBoxLayout* m_recentLayout;           // 最近使用符号布局（水平排列）
    const int MAX_RECENT_COUNT = 10;       // 最近使用符号最大数量

};


#endif 	// NUMPADPANEL_H